package panels; import java.awt.BorderLayout; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JTextArea; import javax.swing.JTextField; import models.Account; import models.Bank; public class CustomerPanel extends JPanel implements ActionListener { private Account account; private Bank bank; private JButton withdraw = new JButton("Withdraw"); private JButton deposit = new JButton("Deposit"); private JButton checkSold = new JButton("Check Sold"); private JPanel buttonLayout = new JPanel(); public CustomerPanel(Bank bank, Account account) { this.bank = bank; this.account = account; setLayout(new BorderLayout()); withdraw.addActionListener(this); withdraw.setActionCommand("withdraw"); deposit.addActionListener(this); deposit.setActionCommand("deposit"); checkSold.addActionListener(this); checkSold.setActionCommand("check"); buttonLayout.setLayout(new GridLayout(3, 1)); buttonLayout.add(withdraw); buttonLayout.add(deposit); buttonLayout.add(checkSold); add(buttonLayout, BorderLayout.WEST); setVisible(true); } @Override public void actionPerformed(ActionEvent e) { if (e.getActionCommand().equals("withdraw")) { String sum = JOptionPane.showInputDialog("Enter the sum to withdraw"); if (!account.cannotWithdraw(Integer.parseInt(sum))) { JOptionPane.showMessageDialog(null, "The total of the account is too small for this operation"); } else { account.withdraw(Integer.parseInt(sum)); } bank.update(account, bank); System.out.println(bank.getObserverReport()); bank.serialize(); } else if (e.getActionCommand().equals("deposit")) { String sum = JOptionPane.showInputDialog("Enter the sum to deposit"); account.deposit(Integer.parseInt(sum)); bank.update(account, bank); System.out.println(bank.getObserverReport()); bank.serialize(); } else if (e.getActionCommand().equals("check")) { String total = "" + account.getTotal(); JOptionPane.showMessageDialog(null, total); } } }